home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
web
/
noweb
/
src
/
shell
/
noweave
< prev
next >
Wrap
Text File
|
1995-02-24
|
12KB
|
221 lines
#!/bin/sh
# Copyright 1991 by Norman Ramsey. All rights reserved.
# See file COPYRIGHT for more information.
LIB=|LIBDIR|
markup=$LIB/markup backend=$LIB/totex
wrapper= delay= args= markopts= noweboptions= autodefs= verbose=
noquote="-noquote" docanchor= noindex="-noindex"
filtera= filterb= filterc= filterd= filtere=
pass2setcmd="set ignore"
for i do
pass2setcmd="$pass2setcmd '$i'"
done
while [ $# -gt 0 ]; do
case $1 in
-latex) if [ "$wrapper" != "none" ]; then wrapper=latex; fi ;;
-tex) wrapper=tex ;;
-html) if [ "$wrapper" != "none" ]; then wrapper=html; fi;
backend="$LIB/tohtml -localindex";
noquote=""; docanchor="-docanchor 10" ;;
-latex+html) if [ "$wrapper" != "none" ]; then wrapper=latex; fi;
backend="$LIB/tohtml -localindex -raw"
noquote=""; docanchor="-docanchor 10" ;;
-n) wrapper=none ;;
-backend) backend="$2" ; shift ;;
-markup) markup="$2" ; shift ;;
-filter) shift ;;
-x) ;;
-index) noindex= ;;
-indexfrom) shift; noindex= ;;
-autodefs) newfilter="$LIB/autodefs.$2"
if [ -r $newfilter ]; then if [ -z "$filtera" ]; then
filtera="$newfilter"
elif [ -z "$filterb" ]; then
filterb="$newfilter"
elif [ -z "$filterc" ]; then
filterc="$newfilter"
elif [ -z "$filterd" ]; then
filterd="$newfilter"
elif [ -z "$filtere" ]; then
filtere="$newfilter"
else
echo "$0: ran out of filters" 1>&2
exit 1
fi
else echo "$0: don't know how to find definitions for '$2'" 1>&2; exit 1
fi
shift
;;
-showautodefs) foundautodefs=
for i in $LIB/autodefs.*; do
if [ -r $i ]; then
echo "This `basename $0` supports -autodefs $i" |
sed "s@$LIB/autodefs\.@@" 1>&2
foundautodefs=$i
fi
done
if [ -z "$foundautodefs" ]; then
echo "This `basename $0` does not support -autodefs"
fi; exit 1 ;;
-option) newopt="$2"; shift; if [ -z "$noweboptions" ] ; then noweboptions="$newopt"
else noweboptions="$noweboptions,$newopt"
fi ;;
# -nodelay) delay= ;;
-delay) delay="-delay" ; wrapper=none ;;
-t*) markopts="$markopts $1" ;;
-v) verbose=1 ;;
-*) echo "$0: Unrecognized option '$1'" 1>&2 ; echo "Usage: $0 [options] [files]" 1>&2
echo "Options recognized are:" 1>&2
echo "-latex Use LaTeX headers and trailers (default)." 1>&2
echo "-tex Use TeX headers and trailers." 1>&2
echo "-html Use HTML headers and trailers." 1>&2
echo "-latex+html Assume LaTeX in documentation, but use HTML in code." 1>&2
echo " -n Don't use any header or trailer." 1>&2
echo "-markup frontend Parse input with frontend (e.g., numarkup)." 1>&2
echo "-x Use the default cross-referencer (needs LaTeX or HTML)." 1>&2
echo "-index Create index using identifiers defined in input files." 1>&2
echo "-indexfrom defs Create index of identifers listed in file defs." 1>&2
echo "-filter cmd Filter through 'cmd' before weaving; cmd could prettyprint" 1>&2
echo " or perform other functions." 1>&2
echo "-autodefs lang Source is in language 'lang'; find definitions automatically." 1>&2
echo "-showautodefs List languages that can be used with -autodefs" 1>&2
echo "-option opt Add \noweboptions{opt} to header (latex only)" 1>&2
echo "-delay Delay markup until after first documentation chunk." 1>&2
echo "-tk Expand tab stops every k columns" 1>&2
echo "-t Copy tabs to the output" 1>&2
echo "-v Print pipeline on standard error" 1>&2; exit 1 ;;
*) arg="$arg $1" ;;
esac
shift
done
if [ -z "$wrapper" ]; then wrapper=latex; fi
eval $pass2setcmd
shift
while [ $# -gt 0 ]; do
case $1 in
-filter)
newfilter="$2" ; shift ; if [ -z "$filtera" ]; then
filtera="$newfilter"
elif [ -z "$filterb" ]; then
filterb="$newfilter"
elif [ -z "$filterc" ]; then
filterc="$newfilter"
elif [ -z "$filterd" ]; then
filterd="$newfilter"
elif [ -z "$filtere" ]; then
filtere="$newfilter"
else
echo "$0: ran out of filters" 1>&2
exit 1
fi ;;
-x) newfilter="$LIB/noidx $docanchor $delay"; if [ -z "$filtera" ]; then
filtera="$newfilter"
elif [ -z "$filterb" ]; then
filterb="$newfilter"
elif [ -z "$filterc" ]; then
filterc="$newfilter"
elif [ -z "$filterd" ]; then
filterd="$newfilter"
elif [ -z "$filtere" ]; then
filtere="$newfilter"
else
echo "$0: ran out of filters" 1>&2
exit 1
fi ;;
-index)
newfilter="$LIB/finduses $noquote" ; if [ -z "$filtera" ]; then
filtera="$newfilter"
elif [ -z "$filterb" ]; then
filterb="$newfilter"
elif [ -z "$filterc" ]; then
filterc="$newfilter"
elif [ -z "$filterd" ]; then
filterd="$newfilter"
elif [ -z "$filtere" ]; then
filtere="$newfilter"
else
echo "$0: ran out of filters" 1>&2
exit 1
fi
newfilter="$LIB/noidx $docanchor $delay"; if [ -z "$filtera" ]; then
filtera="$newfilter"
elif [ -z "$filterb" ]; then
filterb="$newfilter"
elif [ -z "$filterc" ]; then
filterc="$newfilter"
elif [ -z "$filterd" ]; then
filterd="$newfilter"
elif [ -z "$filtere" ]; then
filtere="$newfilter"
else
echo "$0: ran out of filters" 1>&2
exit 1
fi ;;
-indexfrom)
newfilter="$LIB/finduses $noquote $2"; if [ -z "$filtera" ]; then
filtera="$newfilter"
elif [ -z "$filterb" ]; then
filterb="$newfilter"
elif [ -z "$filterc" ]; then
filterc="$newfilter"
elif [ -z "$filterd" ]; then
filterd="$newfilter"
elif [ -z "$filtere" ]; then
filtere="$newfilter"
else
echo "$0: ran out of filters" 1>&2
exit 1
fi
newfilter="$LIB/noidx $docanchor $delay"; if [ -z "$filtera" ]; then
filtera="$newfilter"
elif [ -z "$filterb" ]; then
filterb="$newfilter"
elif [ -z "$filterc" ]; then
filterc="$newfilter"
elif [ -z "$filterd" ]; then
filterd="$newfilter"
elif [ -z "$filtere" ]; then
filtere="$newfilter"
else
echo "$0: ran out of filters" 1>&2
exit 1
fi
shift ;;
esac
shift
done
(
case $wrapper in
none) ;;
latex) echo "@header $wrapper $noweboptions" ;;
*) echo "@header $wrapper $arg" ;;
esac
PATH="$PATH:$LIB"
export PATH
if [ -n "$verbose" ]; then
echo $markup $arkopts $arg '|' 1>&2
if [ -n "$filtera" ]; then echo $filtera '|' 1>&2; fi
if [ -n "$filterb" ]; then echo $filterb '|' 1>&2; fi
if [ -n "$filterc" ]; then echo $filterc '|' 1>&2; fi
if [ -n "$filterd" ]; then echo $filterd '|' 1>&2; fi
if [ -n "$filtere" ]; then echo $filtere '|' 1>&2; fi
fi
if [ -z "$filtera" ]; then
$markup $markopts $arg
elif [ -z "$filterb" ]; then
$markup $markopts $arg | $filtera
elif [ -z "$filterc" ]; then
$markup $markopts $arg | $filtera | $filterb
elif [ -z "$filterd" ]; then
$markup $markopts $arg | $filtera | $filterb | $filterc
elif [ -z "$filtere" ]; then
$markup $markopts $arg | $filtera | $filterb | $filterc | $filterd
else
$markup $markopts $arg | $filtera | $filterb | $filterc | $filterd | $filtere
fi
if [ "$wrapper" != "none" ]; then echo "@trailer $wrapper"; fi
) |
$backend $noindex $delay
if [ -n "$verbose" ]; then echo $backend $noindex $delay 1>&2; fi
exit $?